// #include<iostream>
// #include<unistd.h>

// using namespace std;
// #include<string>
// #include<wait.h>


// int main()
// {
//     cout << "i am father process......" << endl;
//     pid_t id = fork();


//     if(id == 0) 
//     {
//         cout << "i am child process, i will exit......" << endl;
//         int cnt = 3;
//         while (cnt)
//         {
//             cout << cnt << endl;
//             sleep(1);
//             cnt--;
//         }
//         cout << "okey, i have exited......" << endl;
//         exit(0);
//     }
//     //

//     int status = 0;
//     waitpid(id, &status, 0);
//     cout << "i am father....the child process has exited, and i has wait" << endl;
//     sleep(1);
//     printf("yes, i have waited, signal: %d, exit: %d, dam: %d\n", (status & 0x7f), ((status >> 8) & 0xff), ((status >> 7) & 1));


//     return 0;
// }


// #include<iostream>
// using namespace std;
// #include<string>
// #include<unistd.h>

// int main()
// {
//     int a = 0;
//     execl("/usr/bin/pwd", "pwd", nullptr);
//     printf("%d", a);
//     return 0;
// }

// int main()
// {
//     sleep(3);
//     pid_t id = fork();
//     if (id == 0) 
//     {
//         int a, b;
//         sleep(2);
//         cin >> a >> b;
//         if (a == 1 && b == 2) cout << "i am child..., i am front process" << endl;
//         exit(0);
//     }
//     int a, b;
//     cin >> a >> b;
//     if (a == 1 && b == 1) cout << "i am father..., i am front process" << endl;  //创建子进程, 子进程是后台进程. 键盘输入是给父进程的. 但是我们可以提到前台来.    
//     return 0;
// }

